package com.easyto.config;

import com.easyto.starter.MyStarterProperties;
import com.easyto.template.MyStarterTemplate;
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
import org.springframework.boot.context.properties.EnableConfigurationProperties;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

/**
 * 在自动配置 MyStarterAutoConfiguration 类中会自动产生 MyStarterTemplate，这样引入了 easyto-spring-boot-starter启动器
 * 场景启动器的 Spring Boot 工程就都可以使用MyStarterTemplate了 <br/>
 *
 *
 * @EnableConfigurationProperties 注解的作用是启用指定的 @ConfigurationProperties 注解标记的类，
 * 从而将其加载到 Spring 应用程序的上下文中，并使其可用于注入到其他组件中。
 */
@EnableConfigurationProperties({
        MyStarterProperties.class,
})
@Configuration
public class MyStarterAutoConfiguration {

    @ConditionalOnMissingBean(MyStarterTemplate.class)
    @Bean
    public MyStarterTemplate myStarterTemplate(MyStarterProperties myStarterProperties) {
        return new MyStarterTemplate(myStarterProperties);
    }
}

